package Persistencia;

import Negocio.Filme;
import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class FilmeDAO extends BaseDAO {

    private PreparedStatement stIncluir;
    private PreparedStatement stLista;
    private PreparedStatement stRemover;
    private PreparedStatement stCodFilme;

    public FilmeDAO() throws IOException {
        super();
        Connection con = getConexao();
        try {
            stIncluir = con.prepareStatement("INSERT INTO filmes (titulo, ano, genero, formato, tipo, valor, dt_cada) VALUES (?, ?, ?, ?, ?, ?, ?)");
            stLista = con.prepareStatement("SELECT * FROM lista");
            stCodFilme = con.prepareStatement("SELECT filme_id FROM filmes");
            stRemover = con.prepareStatement("DELETE * FROM lista WHERE nome=?");
        } catch (SQLException e) {
            throw new IOException("Nao foi possivel criar as consultas: " + e.getMessage());
        }
    }

    public void incluir(Filme f) throws IOException {
        try {
            stIncluir.setString(1, f.getTitulo());
            stIncluir.setString(2, Integer.toString(f.getAno()));
            stIncluir.setObject(3, f.getGenero());
            stIncluir.setObject(4, f.getFormato());
            stIncluir.setObject(5, f.getTipo());
            stIncluir.setString(6, f.getValor());
            stIncluir.setDate(7, new java.sql.Date(f.getDtCada().getTime()));

            stIncluir.executeUpdate();
        } catch (SQLException e) {
            throw new IOException("Erro ao incluir: " + e.getMessage());
        }
    }

    public int ultimoCodFilme() throws SQLException {
        ResultSet cod = stCodFilme.executeQuery();
        String resultado = null;
        while (cod.next()) {
            resultado = cod.getString("filme_id");
        }
        return Integer.parseInt(resultado) + 1;
    }
}